package com.gitee.dolt.boot.convert;

import java.util.List;
import java.util.stream.Collectors;

/**
 * @author LYH
 */
public interface EntityConvert<Entity, DTO> {

    /**
     * dto to entity
     *
     * @param dto
     * @return
     */
    Entity toEntity(DTO dto);

    /**
     * entity to dto
     *
     * @param entity
     * @return
     */
    DTO toDTO(Entity entity);

    /**
     * update entity
     *
     * @param entity
     * @param dto
     * @return
     */
    Entity updateEntity(Entity entity, DTO dto);

    /**
     * entity to dto
     *
     * @param entityList
     * @return
     */
    default List<DTO> toDTOList(List<Entity> entityList) {
        return entityList.stream().map(e -> toDTO(e)).collect(Collectors.toList());
    }

    /**
     * dto to entity
     *
     * @param dtoList
     * @return
     */
    default List<Entity> toEntityList(List<DTO> dtoList) {
        return dtoList.stream().map(e -> toEntity(e)).collect(Collectors.toList());
    }


}

